Adaptative forward error control scheme

ABSTRACT

A transmitter uses an adaptive forward error control scheme that includes redundant packets to reduce packet error rate at a receiver. The receiver analyzes the received packet error rate before correction to determine an optimal level of redundancy required to respect a maximum tolerated packet error rate after correction, and communicates this determined optimal level to the transmitter for controlling the amount of redundancy in subsequent transmissions from the transmitter.

FIELD OF THE INVENTION

The invention relates to an adaptive Forward Error Correction scheme(FEC) aiming at providing a resilient transport of data via apacket-switched transmission network.

The invention also deals with a transmission system, a transmitter and areceiver implementing such a forward error control scheme.

The invention also deals with a method for determining an amount ofredundancy to be used in such a forward error correction scheme.

The invention advantageously applies to the transport of data via atransmission network having a time-varying state, for instance, a mobiletransmission network.

BACKGROUND OF THE INVENTION

International patent application WO99/04338 describes an adaptiveforward error correction scheme to be used for transmission via wirelesssatellite links.

The forward error correction scheme described in this document operatesat the data link level of the OSI reference model (a forward errorcorrection code is included in each frame for error correction of thisframe). It includes the steps of: calculating a byte error rate,determining a forward error correction code length based on this byteerror rate, and feeding back the forward error correction code length tothe transmitter. The value of the forward error correction code lengthis selected in a table storing inverse byte error rate values inassociation with forward error correction code lengths.

Because it is implemented at the data link level, the proposed method isnot well suited to heterogeneous transmission networks like theInternet. Using the described method in a heterogeneous transmissionnetwork would lead to a separate adaptation of the forward errorcorrection scheme in each network section that is gone through. Thiswould be very complex to implement.

Furthermore, using a table to determine the error correction code lengthhas several drawbacks.

-   First, certain assumptions about the repartition and the size of the    errors are made in order to derive the values stored in the table.    Consequently, the proposed method is not well suited to transmission    networks whose states may vary in an important manner, such as    mobile networks like GSM, UMTS, GPRS . . .-   Second, by the values stored in the table are derived so as to    obtain a certain quality after correction. This means that the    receiver must store as many tables as achievable qualities.

OBJECT AND SUMMARY OF THE INVENTION

It is an object of the invention to propose an adaptive forward errorcontrol scheme that overcomes these drawbacks.

This is achieved with a transmission system as defined in claims 1 to 3,a receiver as defined in claims 4 to 6, a transmitter as defined inclaims 7 and 8, a method for determining the amount of redundancy to beused in a forward error control scheme as defined in claim 9, and aprogram as defined in claim 10.

In the adaptive forward error correction scheme of the invention,redundancy packets are generated at the application layer of thetransmitter from media packets. Therefore, when erroneous packets arediscarded by the transport layer at the receiver side, the applicationlayer is capable of recovering a certain number of packets from thepackets it receives. According to the invention, the amount ofredundancy that is added at the transmitter side is adapted so as toobtain a correction capability allowing to respect a maximum toleratedpacket error rate. According to the invention, the quality of thetransmission network is estimated by watching the packet error rate.

Since it is implemented at the application layer, the method of theinvention is transparent to the transmission network. It is thereforeeasily applicable to heterogeneous transmission networks.

Since the quality of the transmission network is estimated by using thepacket error rate instead of the byte error rate, the use of tables canbe avoided.

The invention guarantees a maximum tolerated packet error from end toend. Advantageously, the maximum tolerated packet error rate is set bythe application that is using the received media packets.

In an advantageous embodiment of the invention, the bitrate of the mediapackets is adapted as a function of k so as to compensate for thevariations of the bitrate of the redundancy packets.

BRIEF DESCRIPTION OF THE DRAWINGS

These and other aspects of the invention are further described withreference to the following drawings:

FIG. 1 is a schematic drawing of a transmission system according to theinvention,

FIG. 2 is a schematic representation of the generation of a transmissionblock,

FIG. 3 is a schematic representation of the adaptation of the amount ofredundancy contained in a transmission block depending on the state ofthe transmission network,

FIG. 4 is a block diagram of a method for determining an amount ofredundancy to be used in a forward error correction scheme according tothe invention.

DESCRIPTION OF A PREFERRED EMBODIMENT

The invention applies to any FEC scheme. In the examples described inthe following, the FEC code is characterized by two parameters k and n,where k is the number of media packets, and (n−k) is the number ofredundancy packets generated from the k media packets. The parameter nhas a constant integral value. The amount of redundancy is adapted byvarying the value of the parameter k. This is not restrictive.

FIG. 1 shows an example of a transmission system according to theinvention comprising a transmitter 1, a transmission network 2 and areceiver 3. In this example, the transmission network 2 is composed ofthe Internet network and of a radio access network (for instance, anetwork compliant with the GPRS or the UMTS standards). The transmitter1 comprises a media source 10 for delivering media packets, a FECencoder 12 for generating redundancy packets from media packets receivedfrom the media source 10, and a transmission/reception block 14implementing the first four layers of the OSI reference model. In thisexample, the network protocol (OSI layer 3) is IP (Internet Protocol)and the transport protocol (OSI layer 4) is RTP (Real time TransferProtocol) over UDP (User Datagram Protocol). The receiver 3 comprises atransmission/reception block 32 that implements the first four layers ofthe OSI reference model, an analyser 34, a FEC decoder 36 and anapplication block 38.

As represented in FIG. 2, the encoder 12 generates (n−k) redundancypackets R₁(i), . . . , R_(n−k)(i) from k media packets M₁(i), . . . ,M_(k)(i). The (n−k) redundancy packets and the k media packets form atransmission block TB(i). The redundancy packets are intended to providea correction capability of Q(k) packets at the receiver.

At the receiver side, the UDP protocol controls the UDP checksum foreach received packet. It discards the packets for which at least one biterror is detected. The packets that are correctly received are forwardedto the FEC decoder 36. The FEC decoder 36 is capable of recovering thediscarded packets from the packets that it receives if the number ofdiscarded packets is smaller or equal to Q(k).

Advantageously, the code used to generate the redundancy is a ReedSolomon code RS(n,k). The correction capability of a Reed Solomon codeRS(n,k) is Q(k)=n−k.

According to the invention, the amount of redundancy is adapteddepending on the state of the network so as to use the bandwidth in anoptimal way. If the transmission network is in a good state, the amountof redundancy shall be decreased so that a larger part of the bandwidthcan be dedicated to the transmission of media packets. In contrast, ifthe transmission network is in a bad state, the amount of redundancyshall be increased so as to increase the chances of recovering discardedmedia packets at the receiver side.

Advantageously, k shall not be smaller than a minimum value k_(min)corresponding to a maximum tolerated amount of redundancy.

An example of such an adaptation is represented schematically in FIG. 3.The curve S gives the evolution of the state S(t) of the transmissionnetwork as a function of time t. The mark G on the Y-axis indicates agood state. The mark D on the Y-axis indicates a bad state. Thecomposition of the transmission blocks TB(i) is indicated in relationwith the curve S. It can be seen that the number k_(i) of media packetstransmitted in the transmission block TB(i) is higher when the state ofthe network is better.

The adaptation of the amount of redundancy contained in the transmissionblocks TB(i) is controlled by the analyser 34. The analyser 34 analysesthe packet errors occurring on the transmission network and generatesorders 42 for the FEC encoder 12. The orders 42 contain an optimal valuek_(optimal) to be used by the FEC encoder 12. They are transmitted tothe transmitter 1 using RTCP feedback messages.

The operations of the analyser 34 will now be described in more detailwith reference to FIG. 4.

For computing k_(optimal), the analyser 34 keeps a history of the numberP_(i) of packet errors in the received transmission blocks TB(i).Preferably, the size of this history corresponds to several Round TripTimes through the transmission network. The number of packet errors in atransmission block TB(i) is equal to the number of lost packets. Packetlosses are detected by using the RTP sequence numbers (the header of theRTP packet contains a sequence number; the value of the sequence numberis incremented by one each time a packet is transmitted; at thereceiver, missing sequence numbers correspond to lost packets).

When the analyser 34 detects the end of a transmission block TB(i) (boxT1 in FIG. 4), it calculates and stores the number P_(i) of packeterrors in this transmission block (box T2).

Then the analyser 34 executes the following operations for k varyingfrom n to k_(min).

-   -   The analyser estimates the capability correction Q(k) (box T4).    -   Given the number P_(i) of packet errors and the correction        capability Q(k), the analyser 34 computes the number P_(i)′(k)        of packet errors after correction (box T5):

$\left\{ {\quad\begin{matrix}{{P_{i}^{\prime}(k)} = {{0\mspace{14mu}{if}\mspace{14mu} 0} \leq P_{i} \leq {Q(k)}}} \\{{P_{i}^{\prime}(k)} = {{P_{i}\mspace{14mu}{if}\mspace{14mu}{Q(k)}} < P_{i} \leq n}}\end{matrix}} \right.$

-   -   The analyser 34 calculates a mean value M(k) of the number        P_(i)′(k) of packet errors after correction (box T6).        Advantageously, more importance is given to the last packet        errors when calculating the mean value M(k) because they are        more meaningful for the knowledge of the current network state.        This allows faster reaction to the variations of the        transmission network. For instance:

${M(k)} = \frac{\sum\limits_{i = 1}^{m}{\omega_{i}{P_{i}^{\prime}(k)}}}{\sum\limits_{i = 1}^{m}\omega_{i}}$where m is the number of transmission blocks in the history and:

$\left\{ {\quad\begin{matrix}{\omega_{i} = {{1\mspace{14mu}{for}\mspace{14mu} 1} \leq i \leq {m/2}}} \\{\omega_{i} = {{1 - {\frac{i - {m/2}}{{m/2} + 1}\mspace{14mu}{for}\mspace{14mu}{m/2}}} < i \leq m}}\end{matrix}} \right.$

-   -   The corresponding packet error rate R(k)=M(k)/n is compared with        a maximum tolerated packet error rate PER_(MAX) (box T7). If        R(k)≦PER_(MAX) or if k=k_(min), then k_(optimal) is set to the        current value of k (k_(optimal)=k) and it is sent in a feedback        message to the FEC encoder 12 (box T8). In the other cases, k is        decreased by one (box T9) and the above-mentioned operations are        executed for the new value of k.

In a preferred embodiment, the maximum tolerated packet error rate isset by the application block 38 (arrow 39 in FIG. 1). Differentapplications can thus set different maximum tolerated packet errorrates.

The optimal value of k is the highest value of k allowing to respect themaximum tolerated packet error rate PER_(MAX) after correction.

Alternatively, the new value of k_(optimal) is fed back to thetransmitter only when it differs from the previous one.

Advantageously, the media source 10 delivers media packets with anadaptable bitrate, called media bitrate, and the media source 10 iscontrolled by the FEC encoder 12 in order to adapt the media bitrate asa function of k with the aim of compensating for the variation of theredundancy bitrate. In a first embodiment, the media source is a realtime encoder whose encoding bitrate is changed on the fly underreception of an order from the FEC encoder. In a second embodiment, themedia source 10 comprises a file switcher intended to switch betweenseveral pre-encoded files, each pre-encoded file corresponding to aspecific media bitrate. For applications operating at a constant bitrateCB, the media bitrates MB(k) of the pre-encoded files are advantageouslychosen as follows:

${{MB}(k)} = {{\frac{k}{n}{CB}\mspace{14mu}{for}\mspace{14mu} k_{\min}} \leq k \leq {n.}}$

In another embodiment (not represented here), the transmitter comprisesa rate control block intended to estimate the current channel bitrateand control the media source 10. In this embodiment, the media sourceadapts the media bitrate depending on k and depending on an orderreceived from the rate control block so that the overall bitrate (equalto the sum of the media bitrate and the redundancy bitrate) matches thecurrent channel bitrate.

The functions of the analyser 34 that have just been described areimplemented in software on a processor of the receiver 3.

With respect to the described system, transmitter, receiver and methodof determining the amount of redundancy to be added to the media,modifications or improvements may be proposed without departing from thescope of the invention. The invention is thus not limited to theexamples provided.

In particular, the media packets and their corresponding redundancypackets are not necessarily transmitted in transmission blocks of aconstant size. The order fed back by the receiver is not necessarily theoptimal value of k. It could be any indication of the optimal amount ofredundancy to add to the media (for instance, it could be the optimalvalue of (n−k) or the optimal value of the overhead, the overhead beingclassically defined as

$\left. {100 \times \frac{\left( {n - k} \right)}{k}\%} \right).$

The invention is not restricted to the use of Reed Solomon codes. Anycorrection code whose correction capacity is a function of k and n canbe used. The word “comprise” and its conjugations does not exclude thepresence of elements or steps other than those stated in the claims. Useof the article “a” or “an” preceding an element or step does not excludethe presence of a plurality of such elements or steps.

1. A transmission system comprising: a transmitter, a transmissionnetwork having a time varying state, and a receiver, wherein: thetransmitter includes an encoder for generating redundancy packets abovethe OSI Network Level (OSI Level 3) from media packets so as to providean error correction capability at the receiver, the correctioncapability depending on the amount of redundancy generated by theencoder, and the receiver includes an analyser that is configured toanalyze packet errors occurring on the transmission network anddetermine an optimal amount of redundancy that provides an errorcorrection capability allowing to respect a maximum tolerated packeterror rate, and is configured to communicate the optimal amount ofredundancy to the transmitter for use by the encoder.
 2. Thetransmission system of claim 1, wherein the transmitter includes a mediasource for delivering the media packets with an adaptable media bitrate,and the encoder is designed to control the media bitrate depending onthe amount of redundancy currently added by the encoder.
 3. Thetransmission system of claim 1, wherein the analyser is designed to:keep a history of numbers of packet errors in a plurality oftransmission blocks, and for different numbers of possible redundancypackets in each transmission block: calculate a mean value of numbers ofpacket errors in the plurality of transmission blocks after correctionwith an error correction capability corresponding to the number ofpossible redundancy packets, calculate a corresponding packet error ratebased on the mean value, and compare the corresponding packet error ratewith the maximum tolerated packet error rate for selecting the optimalamount of redundancy.
 4. A receiver for receiving media packets andredundancy packets transmitted by a transmitter via a transmissionnetwork having a time-varying state, the redundancy packets beinggenerated from the media packets above the OSI Network Level (OSI Level3) so as to provide an error correction capability of a certain numberof packets at the receiver, the receiver comprising: an analyser foranalysing packet errors occurring on the transmission network and fordetermining an optimal amount of redundancy that provides an errorcorrection capability allowing to respect a maximum tolerated packeterror rate, and a feedback device that is configured to feed back theoptimal amount of redundancy to the transmitter.
 5. The receiver ofclaim 4, wherein the analyser is designed to: keep a history of thenumber B_(i) of packet errors in a plurality of transmission blocks, andfor different numbers of possible redundancy packets: calculate a meanvalue of numbers of packet errors in the plurality of transmissionblocks after correction with an error correction capability based on thenumber of possible redundancy packets, calculate a corresponding packeterror rate, and compare the corresponding packet error rate with themaximum tolerated packet error rate for selecting the optimal amount ofredundancy.
 6. The receiver of claim 4, wherein the received mediapackets are intended to be used by an application, and the maximumtolerated packet error rate is set by the application.
 7. A transmitterfor transmitting packets to a receiver via a transmission network havinga time varying state, the transmitter comprising: an encoder forgenerating redundancy packets above the OSI Network Level (OSI Level 3)from media packets so as to provide an error correction capability of acertain number of packets at the receiver, the correction capabilitydepending on an amount of redundancy generated by the encoder, and theencoder being designed to set the amount of redundancy to an optimalvalue that gives an error correction capability allowing to respect amaximum tolerated packet error rate defined at the receiver, the optimalvalue being fed back to the transmitter by the receiver based on priortransmissions from the transmitter.
 8. The transmitter of claim 7,including a media source for delivering the media packets with anadaptable media bitrate, wherein the encoder is designed to control theadaptable media bitrate depending on the amount of redundancy generatedby the encoder.
 9. A method for determining an amount of redundancy tobe used in a forward error correction scheme in which redundancy packetsare generated from media packets above the OSI Network Level (OSI Level3) at a transmitter so as to provide a correction capability of acertain number of packets at a receiver, the method comprising:analysing packet errors occurring on the transmission network at thereceiver, determining an optimal amount of redundancy that provides anerror correction capability allowing to respect a maximum toleratedpacket error rate at the receiver, communicating the optimal amount ofredundancy from the receiver to the transmitter.
 10. A program stored incomputer readable medium comprising instructions for implementing themethod of claim 9 when the program is executed by a processor.